home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 October / EnigmA AMIGA RUN 22 (1997)(G.R. Edizioni)(IT)[!][issue 1997-10 & 11][EAR-CD VI].iso / progs / devel / pcq12d_1 / docs / history.pcq < prev    next >
Text File  |  1997-05-17  |  12KB  |  285 lines

  1.  
  2.  
  3. ===================================================================
  4.  
  5.                           Update History
  6.  
  7. ===================================================================
  8.  
  9. Version 1.2d (May 10 1997)
  10.  
  11.   o   Fixed a bug in intuition.i. EasyRequestArgs had wrong
  12.       returnvalue, WindowPtr, should be Integer.
  13.   o   Added stuff to Exec/Types.i:
  14.       Type
  15.       BOOL   = Short;
  16.       Const
  17.       BOOLTRUE  = -1;
  18.       BOOLFALSE =  0;
  19.       Just to make it easier to use c-functions.
  20.   o   This one is old but while I remember it.
  21.       Utility/utility.i had wrong names for some of the functions.
  22.       Stricmp, Strnicmp, ToLower and ToUpper. Changed to
  23.       UStricmp, UStrnicmp, UToLower and UToUpper.
  24.   o   When I tried to set a title in an aslfontrequester the
  25.       layout got screwed up. Made a new asl.lib and it worked
  26.       ok. Just link with the asl.lib before pcq.lib.
  27.  
  28. Version 1.2d (May 01 1997)
  29.  
  30.       PCQ Pascal 1.2d is now freeware.
  31.  
  32.       I got a mail from Pat Quaid today that I could put PCQ 1.2d
  33.       on Aminet as Freeware.
  34.  
  35.       So the people that has collected the sharewarefee can keep
  36.       the money. (That's what Pat sad.)
  37.  
  38.       This version has the includes for 3.1 and pcq.lib for 3.1.
  39.       The includes are the work of Andreas Tetzl and pcq.lib is
  40.       the work of Bernd Kunnen.
  41.  
  42.       Myself (Nils Sjoholm) has made some correction to the
  43.       includes and made some glue routines for missing functions.
  44.       The glues are joined to pcq.lib.
  45.  
  46.       I have corrected the includes for some time and I haven't
  47.       keeped record of my changes so I don't remeber what the
  48.       changes are.:)
  49.  
  50.   ***************************************************************
  51.  
  52. Version 1.2d (August 22, 1992)
  53.  
  54.   o   Fixed a problem with typed constant arrays - array elements
  55.       with an odd size were not padded.
  56.  
  57. Version 1.2d (February 15, 1992)
  58.  
  59.   o   Fixed the date routines in DateTools
  60.   o   Fixed a bug with range types that caused them to be one
  61.       byte long.
  62.   o   Comparisons of structured types didn't work - they do now.
  63.   o   Fixed a problem with the iff.library's GetColorTable glue
  64.       routine.
  65.  
  66. Version 1.2d (September 18, 1991)
  67.  
  68.   o   Fixed a bug in multi-dimensional array references.
  69.   o   Fixed a mistake in the Exec/ExecBase.i file.
  70.   o   Added support for variable numbers of arguments, including
  71.       the va_start and va_arg routines.
  72.   o   Added support for C style parameter passing, i.e. right-to-
  73.       left.
  74.   o   Added the $X directive for ignoring function return values.
  75.  
  76. Version 1.2c (August 10, 1991)
  77.  
  78.   o   The compiler would not allow New() and Dispose() in programs
  79.       compiled under the small initialization code option.
  80.   o   Since type casts were not functions, constant integers were
  81.       never extended if they were cast to, say, a pointer type.
  82.       That's not really a bug, but since it is difficult to get
  83.       around, the compiler now promotes integer types when it
  84.       should.
  85.   o   The CHIP and FAST keywords were added.
  86.   o   Added variant records.
  87.   o   Added the exception that allows pointer declarations to refer
  88.       to undefined types.
  89.   o   Added support for the "e" scaling term in floating point
  90.       constants, so for example "2e2" means 2 * 10^2.
  91.   o   Added the $N directive.
  92.   o   Added (* and *) as synonyms for { and }
  93.   o   Added execution profiler.
  94.   o   Some of the floating point output routines fixed in previous
  95.       versions had not yet been incorporated into PCQ.lib.
  96.   o   Modified the IF statement to omit code inside constant FALSE
  97.       IF statements.
  98.   o   Fixed a bug in the ReadInt routine when no digits were read.
  99.  
  100. Version 1.2b (June 22, 1991)
  101.  
  102.   o   The compiler would ignore function or procedure parameters
  103.       following negative constants.
  104.   o   The compiler now ensures that each element of an array is
  105.       word-aligned, if the element is larger than one byte.
  106.   o   Fixed the looping problem with REPEAT/UNTIL.
  107.   o   The $A didn't work between the routine header and the code
  108.       area.
  109.  
  110. Version 1.2a (June 8, 1991)
  111.  
  112.   o   The XOR operator would produce illegal assembly commands.
  113.   o   Some floating point comparisons would produce incorrect
  114.       results.
  115.   o   The $A assembly directive now works anywhere in the code,
  116.       not just in procedures and functions.
  117.   o   The compiler used to accept unknown identifiers in typed
  118.       constants (as operands of the @ operator).
  119.   o   The INC and DEC statements were not handling Inc(var1,var2)
  120.       forms correctly.
  121.  
  122. Version 1.2 (April 18, 1991)
  123.  
  124.   o   Fixed strlen and CreateTask() to work with 32-bit memory.
  125.   o   Re-wrote the expression parsing and code generating routines
  126.       completely.  The routines now use registers much more
  127.       effectively, and provide a good base for the separate
  128.       peephole optimizer.
  129.   o   Added a few Turbo Pascal features:  you can now use typecasts
  130.       anywhere, even in address calculations.  Thus you can now
  131.       write something like RecordType(Pointer^).Field, which in
  132.       version 1.1 was illegal.
  133.   o   Changed the FOR statement significantly in order to make it
  134.       more efficient, and more like Turbo.  It boils down to two
  135.       differences:  FOR loops no longer run a minimum of once (e.g
  136.       for i := 1 to 0 do ...  will execute zero times), and the BY
  137.       clause is gone.
  138.   o   Added short circuit evaluations, automatic floating point
  139.       conversions, Heap functions, Reset and Rewrite.
  140.   o   You can now use any standard functions or operators in
  141.       constant expressions.
  142.   o   Changed the Read routines to comply with Standard Pascal and
  143.       Turbo, in that any white space is skipped before reading
  144.       integers and reals.  It used to stop at EOLNs.
  145.  
  146.  
  147. Version 1.1d, May 6, 1990:
  148.  
  149.     I've begun accumulating small changes under a new version
  150. number purely for aesthetics.  The first difference is that the
  151. compiler now creates a SECTION for data only if it has to.  That
  152. sounds like an efficiency issue, but actually it wasn't creating a
  153. SECTION at all if it was compiling an External unit.
  154.     When StdOut is a file, the compiler no longer writes the line
  155. numbers and all that stuff.  I have also made what I hope is the
  156. last fix to the real number reading routines.
  157.     The routine that compares include file names to the list of
  158. previously included files is now case-insensitive.  I can't
  159. imagine why it wasn't before.
  160.  
  161. Version 1.1c, April 6, 1990:
  162.  
  163.     I should have guessed that the problem recognizing the sign of
  164. small real numbers on output would have a symmetric problem for
  165. input.  It did, and now it doesn't.  I also fixed the problem with
  166. signs on real constants.  I also added the exp() and ln()
  167. functions recently sent to me by Martin Combs.  To avoid inflation
  168. of version numbers, I've changed the date but kept the same
  169. version.
  170.     I've been thinking about adding peephole optimization to the
  171. process, and rather than doing it the right way I've been playing
  172. with a separate program.  To make that easier, I've removed short
  173. branches from the code generated.  A68k adds them where necessary
  174. anyway.
  175.  
  176. Version 1.1c, March 3, 1990:
  177.  
  178.     The only changes to the compiler are the new standard
  179. functions.  The more significant changes were in the runtime
  180. library.  First, I replaced the sin() and cos() functions based on
  181. suggestions by Martin Combs - the result is that the results are
  182. accurate to about 3 digits, and only slightly slower.  Martin was
  183. kind enough to send along a very useful set of routines, which
  184. also included the tan() and arctan() functions.  I also fixed the
  185. routine that writes real numbers, so values between -1.0 and 0.0
  186. now include the minus sign.
  187.  
  188. Version 1.1b, February 6, 1990:
  189.  
  190.     This program is over a year old.
  191.     Added the Sqr() function.  Sqr(n) is the same as n * n, but
  192. marginally faster and smaller.  Also, the compiler used to
  193. generate lots of errors when an include file was missing.  Now it
  194. skips the rest of the comment, like it should.
  195.     Apparently floating point constants didn't used to work.  Why
  196. am I always the last to know?  I also added the Sin() and Cos()
  197. functions, based on an aside during a lecture on an entirely
  198. different topic.
  199.     Later I added the sqrt() function, using Newton's method.
  200.  
  201. Version 1.1a, January 20, 1990:
  202.  
  203.     Fixed a bug in the WriteArb routine that manifested itself
  204. whenever you wrote to a 'File of Something'.
  205.     Fixed a bug left in the floating point math library.  It seems
  206. that it had not been updated for the all the 1.1 changes, so
  207. during linking it required objects that aren't around anymore.
  208. Since floating point math is now handled by the compiler, I hadn't
  209. noticed it before.
  210.  
  211. Version 1.1, December 1, 1989:
  212.  
  213.     This version is completely re-written, and has far too many
  214. changes to list them individually here.  The main changes are the
  215. with statement, the new IO system, a completely redesigned symbol
  216. table, nested procedures, and several new arithmetic operators.
  217. In order to help port programs from Turbo Pascal and C, I added
  218. typed constants, the Goto statement, and the normal syntax for
  219. multi- dimensional arrays.
  220.  
  221. Version 1.0c, May 21, 1989:
  222.  
  223.     I changed the input routines around a bit, using DOS files
  224. rather than PCQ files.  I buffered the input, and made the
  225. structure more flexible so I could nest includes.  Rather than
  226. make up some IfNDef directive, I decided to keep track of the file
  227. names included and skip the ones already done.  Buffering the
  228. input cut compile times in half.  I would not have guessed
  229. buffering would be that significant, and I suppose I should
  230. rethink PCQ input/output in light of this.
  231.     I added code to check for the CTRL-C, so you can break out
  232. early but cleanly.  The Ports.i include file had a couple of
  233. errors, which I fixed, and I also fixed the routine that opens a
  234. console for programs that need one.  It used to have problems when
  235. there were several arguments in the first write().
  236.     I added the SizeOf() function, floating point math, and the
  237. standard functions related to floating point math.
  238.     There were several minor problems in the include files which I
  239. found when I got the 1.3 includes, the first official set I've had
  240. since 1.0.
  241.     I relaxed the AND, OR and NOT syntax to allow any ordinal
  242. type.  This allows you to get bitwise operations on integers and
  243. whatever.  I also added a standard function called Bit(),
  244. described above.  These are all temporary until I can get sets
  245. into the language.
  246.     I finally added string indexing.  In doing so I found a bug in
  247. the addressing routine selector(), so I rewrote it to be more
  248. sensible.  I think it also produces larger code, but I'm not too
  249. worried because I'm going to add expression trees soon anyway.
  250.  
  251. Version 1.0b, April 17, 1989:
  252.  
  253.     I fixed a bug in the way complex structures were compared.  It
  254. seems that one too many bytes were considered, so quite often the
  255. comparison would fail.
  256.  
  257. Version 1.0a, April 8, 1989:
  258.  
  259.     This version added 32 bit math, and fixed the case statement.
  260. The math part was just a matter of getting the proper assembly
  261. source, but I changed the case statement completely.  Version 1.0
  262. of the compiler produced a table that was searched sequentially
  263. for the appropriate value, which if found was matched up with an
  264. address.  I thought all compilers did this, but when debugging a
  265. Turbo Pascal program at work I found that it just did a bunch of
  266. comparisons before each statement, as if it were doing a series of
  267. optimized if statements.  I had thought of this and rejected it as
  268. being too simplistic, but if it's good enough for Turbo it's good
  269. enough for me.
  270.     The next thing I changed in this release was the startup code.
  271. You can now run PCQ Pascal programs from the Workbench.  This was
  272. just a matter of taking care of the Workbench message, but I also
  273. fooled around with standard input and output.  If you try to read
  274. or write to standard in or out from a program launched from the
  275. Workbench, the run time code will open a window for you.
  276.     I also fixed one bug that I found:  an array index that was
  277. not a numeric type had its type confused.  Nevermore.
  278.  
  279. Version 1.0, February 1, 1989
  280.  
  281.     Original release.
  282.  
  283.  
  284.  
  285.